home *** CD-ROM | disk | FTP | other *** search
/ 3D Games - Real-time Rend…ng & Software Technology / 3D Games - Real-time Rendering & Software Technology.iso / flysdk / plugin / gamelib / color_particle.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-03-23  |  888 b   |  43 lines

  1. #include "..\..\lib\Fly3D.h"
  2. #include "gamelib.h"
  3.  
  4. int color_particle::step(int dt)
  5.     return particle::step(dt);
  6. }
  7.  
  8. void color_particle::draw()
  9. {
  10.     glDepthMask(GL_FALSE);
  11.     glBlendFunc(GL_ONE, GL_ONE);
  12.     glDisable(GL_FOG);
  13.  
  14.     tc->use(texture);
  15.  
  16.     glColor3f(color.x*color.w,color.y*color.w,color.z*color.w);
  17.     
  18.     static vector x,y;
  19.     x=flyengine->cam->X*size;
  20.     y=flyengine->cam->Y*size;
  21.  
  22.     glBegin(GL_QUADS);
  23.  
  24.     glTexCoord2f(1,0);
  25.     glVertex3f(pos.x+x.x-y.x, pos.y+x.y-y.y, pos.z+x.z-y.z);
  26.  
  27.     glTexCoord2f(1,1);
  28.     glVertex3f(pos.x+x.x+y.x, pos.y+x.y+y.y, pos.z+x.z+y.z);
  29.  
  30.     glTexCoord2f(0,1);
  31.     glVertex3f(pos.x+y.x-x.x, pos.y+y.y-x.y, pos.z+y.z-x.z);
  32.  
  33.     glTexCoord2f(0,0);
  34.     glVertex3f(pos.x-x.x-y.x, pos.y+-x.y-y.y, pos.z-x.z-y.z);
  35.  
  36.     glEnd();
  37.  
  38.     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  39.     if (flyengine->fog) glEnable(GL_FOG);
  40.     glDepthMask(GL_TRUE);
  41. }
  42.